#include <AVUIPanel.h>

namespace AVUI {


class StackPanel : public Panel
{
public:
    StackPanel();
    ~StackPanel();


    Size MeasureOverride(const Size& constraintSize);
    Size ArrangeOverride(const Size& constraintSize);

    DECLARE_ELEMENT(StackPanel, Panel);

    DECLARE_DEPENDENCY_PROPERTY(Orientation);
    Orientation::Enum get_Orientation() { return (Orientation::Enum)(AVUI::UnboxValue<int>(GetValue(get_OrientationProperty()))); }
    void set_Orientation(Orientation::Enum value) { SetValue(get_OrientationProperty(), AVUI::BoxValue<int>(value)); } 

protected:

    virtual bool get_HasLogicalOrientation() { return true; }
    virtual Orientation::Enum get_LogicalOrientation() { return get_Orientation(); }

private:
    static void StaticConstructor();
};

}; // namespace AVUI
